export function formatTime(dateStr: string): string {
  const date = new Date(dateStr)
  const now = new Date()
  const diff = now.getTime() - date.getTime() // 使用 getTime() 获取时间戳
  const seconds = Math.floor(diff / 1000)
  const minutes = Math.floor(seconds / 60)
  const hours = Math.floor(minutes / 60)
  const days = Math.floor(hours / 24)

  // 判断是否是今天
  const isToday =
    date.getFullYear() === now.getFullYear() &&
    date.getMonth() === now.getMonth() &&
    date.getDate() === now.getDate()

  // 星期几的映射
  const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
  const weekDay = weekDays[date.getDay()]

  // 格式化时间部分
  const formatTimePart = (): string => {
    const hours = date.getHours().toString().padStart(2, '0')
    const minutes = date.getMinutes().toString().padStart(2, '0')
    return `${hours}:${minutes}`
  }

  if (isToday) {
    // 如果是今天，只显示时间 HH:MM
    return formatTimePart()
  } else if (days === 1) {
    // 昨天，显示“星期几 几点几分”
    return `${weekDay} ${formatTimePart()}`
  } else if (days > 1) {
    // 超过一天，显示完整日期
    return `${date.getFullYear()}年${date.getMonth() + 1}月${date.getDate()}日`
  } else if (hours > 0) {
    // 几小时前
    return `${hours}小时前`
  } else if (minutes > 0) {
    // 几分钟前
    return `${minutes}分钟前`
  } else {
    // 刚刚
    return '刚刚'
  }
}
